package com.woniuxy.service.imp;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.woniuxy.mapper.GradeMapper;
import com.woniuxy.pojo.Grade;
import com.woniuxy.pojo.PageInfo;
import com.woniuxy.service.GradeService;

import lombok.Data;

@Service
@Data
public class GradeServiceImp implements GradeService {
	@Resource
	private GradeMapper gradeMapper;

	@Override
	public List<Grade> all() {

		return gradeMapper.all();
	}

	@Override
	public int add(Grade grade) {

		return gradeMapper.add(grade);
	}

//分页显示班级
	@Override
	public PageInfo ShowAllByPage(int pageNumber) {
		PageInfo pageInfo = new PageInfo();
		// 每页显示的数量
		int pageSize = 5;
		// 班级总数
		int count = gradeMapper.GradeCount();
		// 计算总页数
		int pageCount = count % pageSize == 0 ? count / pageSize : count / pageSize + 1;
		if (pageNumber > pageCount) {
			// 下一页不能大于总页数
			return null;
		}
		// 取得起始索引
		pageNumber = (pageNumber - 1) * pageSize;
		pageInfo.setPageNumber(pageNumber);
		pageInfo.setPageSize(pageSize);
		pageInfo.setTotal(pageCount);
		List<Grade> list = gradeMapper.ShowAllByPage(pageInfo.getPageNumber(), pageInfo.getPageSize());
		pageInfo.setList(list);
		return pageInfo;
	}

	// 取得总数
	@Override
	public int GradeCount() {

		return gradeMapper.GradeCount();
	}

	// 根据班级id查班级
	@Override
	public Grade findGradeById(int grade_id) {

		return gradeMapper.findGradeById(grade_id);
	}

	// 返回该班级当前学生人数
	@Override
	public int findCountById(int grade_id) {

		return gradeMapper.findCountById(grade_id);
	}

	@Override
	public int delete(int grade_id) {
		if (findCountById(grade_id) != 0) {
			// 当前班级还有人数，不能删除
			return 0;
		}

		return gradeMapper.delete(grade_id);
	}

}
